提供我的Java學習歷程給大家當參考。
如果只算前端跟後端的課程,學習時數大概是前端20%後端80%。
呼應Day24的「只要20小時就能學會任何事」,超過半數的課程都在20小時以內。
認識一堆HTML標籤跟CSS語法,因為上課的時候對網頁完全沒有概念,只覺得被塞進了很多的東西要記,但又不知道從何開始記。
這部分的知識直到專題製作時自己割版查資料的時候才補上。
遇到了一個跟鬼一樣的老師,比起開發者工具(例如VS Code)他更喜歡使用Chrome DevTools的console來介紹Javascript的api,此舉直接導致了很多學生的Javascript沒有學好。
後續我是靠回家找其他教學影片才把Javascript的知識補上。
我很喜歡的一門課,可能是作業有點難但做出來卻很有成就感的關係吧,促成我喜歡前端的關鍵點。
在還沒有框架的時代,如果要操作DOM就絕對要使用jQuery,jQuery的便利性甚至讓我覺得相見恨晚,jQuery就是一款這麼的有魔力的Lib。
我很喜歡的一門課,在當時我還不知道什麼是single-page application(SPA),但已經有個想法在我腦中萌芽:「大量使用Ajax的網站都是比較現代的。」
RWD能讓你的網頁在不同的裝置上選擇合適的排版方式將內容呈現到使用者面前,這門課程對於HTML&CSS只上了12小時的人來說還是有點硬,專題的最後我也只有不讓畫面跑版太嚴重的程度。
從第一句System.out.print("Hello World");
就知道Java有多囉嗦,學習都過程都還算順利,除了Static、物件導向的get來set去、泛型只知道在貼標籤,IO好像俄羅斯娃娃,Lambda只覺得好像很潮。
聽起來也沒多順利,總之Java有很多作業,我全部都有做完,如果聽不懂又不會做作業怎麼辦?
Day17有提供我的作法。
資料庫是前期的課程之一,也是第一個讓我覺得有在用語法(syntax
)跟電腦溝通的課程。
課程中有大量的觀念與練習,需要我們跳脫原來的思考方式才能順利完成。
例如主表並不會知道子表的存在,這一點是我當時覺得很難適應的一件事。
這堂課也是很多練習,做完就對了!
當你會基礎Java會操作資料庫了接下來我們就可以試著使用Java來控制資料庫。
在當時我並不知道這兩者為何要結合在一起,但後來想想,程式就是要減少我們人員的操作所以資料庫的功能應該也要可以用程式來操作才對。
就如同圖書館會有很多的圖書分類一樣,資料庫也需要對資料做好分類,因此資料庫設計就是一門教你如何檢視自己的設計/分類是否合理的一門課。
從使用者登入某個網站開始,伺服器怎麼收到你登入的資料並做出響應的,Servlet跟JSP主要就是教你在網站中大大小小的基礎知識。也因為知識量太龐大,蠻多人在這門課都吸收不良。
我們討厭慣老闆讓某個員工同時負責太多的任務。我們軟體工程師也同樣討厭有太多任務的程式,我們會努力的拆分程式應該執行的任務,就像是在分部門一樣,最終我們得到了一個廣泛接受的分法Model–view–controller
簡稱MVC。
Maven是一個很強大的專案管理工具,但在新手時期我只知道他是個很方便的下載器,幾乎我需要的依賴都可以透過Maven Repository找到。
之前我們學了JDBC,但JDBC要寫的程式稍嫌繁多,這下軟體工程師不滿意了因為重複的工作太多,而程式本該簡化我們工作才對,因此Hibernate橫空出世簡化了過去JDBC的大量工作。
之前我們學了Servlet,但Servlet要寫的程式稍嫌繁多,這下軟體工程師不滿意了因為重複的工作太多,而程式本該簡化我們工作才對,因此Spring橫空出世簡化了過去Servlet的大量工作。
其實不只如此,Spring還帶來了很多的觀念幫助我們解耦。
專案從發想到動工,運用run Agile常用的工具將可以幫助大家釐清現在的任務及狀態,很多大量需要溝通的工作也發生在這個時候。
在當時我是不知道測試的價值的,如果你報名的課程有交測試的話建議好好學。
Git是軟體工程師的主要版本控制工具,如果對命令行感到害怕的新手可以試著使用一些圖形化工具來輔助你,例如Sourcetree
我們製作的Application總是需要硬體來乘載,這門課會告訴你一些跟硬體有關的一些知識。
這是一堂塞了很多內容的課程,包括了雲上的打包編譯與部署,這在初學者時期八成是聽不懂也不知道價值的一門課,也因為如此大部分的同學都放棄聽講,後來這門課似乎也砍掉了,蠻可惜的。
最後一個月大概都是在衝刺專題,已記不得有幾個小時了,那是一個痛著並快樂著的時期。
做專題會遇到很多很多的問題,團隊有人脫隊的問題、技術問題似乎無法實現的問題、教過卻不會寫的問題、寫完卻有bug的問題等等...
經常有人問我是否補習(自學)期間學得到東西足夠滿足業界?
當然不夠,而且是永遠不夠!
畢竟產業很多,用到的技術也都不一樣,所以才需要多人協作,也因此當你完成你的作品的時候就可以去求職了,剩下的你可以邊做邊學。
在邊做邊學的過程中可能很痛苦,但也會發現自己擅長什麼喜歡什麼,進而找到自己偏好的工作內容。
在那時(2020年7月)廠商媒合都還是實體進行的,我們要製作自己的專題海報,當天要穿的體面,臉上的神情要看不出來每天都是奮戰到天亮的疲態,媒合的當天看到作品的海報被張貼在牆上心中滿是澎湃,沒有影片的Demo一切都是現場演出,很謝謝老師那幾個月的栽培,讓我們這群學生可以有個華麗轉身的機會。
圖片來源: https://www.pexels.com/zh-tw/photo/5158946/